ESP32-WROOM-32でJSONを扱うのは難しくない
こんにちはAIソリューション部のさかじです。 ESP32-WROOM-32のようにネットワークに接続できる場合サーバとデータをやりとりする場合にJSONを扱うことがあると思います。しかし、組込みでは文字列の扱いはライブラリが無いと以外と面倒です。そこでArduino IDE向けに提供されているArduinoJSONをご紹介します。
環境
- MacBook Pro(macOS High Sierra 10.13.6)
- micro USB-Bメス ケーブル(使用するPC/Macに合わせてご用意ください)
- Arduino IDE(V1.8.7)
- ESP32-DevKitC ESP-WROOM-32開発ボード
- ArduinoJson バージョン6.10.0
準備
- Arduino IDEのメニューから"スケッチ" - "ライブラリをインクルード" - "ライブラリを管理"を選択
- ”Arduinojson"を検索し、インストールします。
JSON生成
インクルード
#include
初期化
StaticJsonDocument<200> doc;
生成
{"hello":"world"}
と生成したい場合には
doc["hello"] = "world"; serializeJson(doc, Serial);
JSON分解
{"hello":"world"}
のJSONを取り扱う場合
インクルード
#include
初期化
StaticJsonDocument<200> doc; char json[] = "{\"hello\":\"world\"}";
分解
JsonObject object = doc.as(); deserializeJson(doc, json);
データ取り出し
const char* world = doc["hello"];
参考サイト
https://arduinojson.org/v6/api/jsonobject/
最後に
JavaScriptなどはこの様な面倒な処理はないため若干面倒なイメージがあります。組込み経験者からはこのライブラリを使うことでこんなに簡単にJSONを扱えるのは嬉しいですね。本ライブラリを使うことでサーバとのやりとりの労力がかなり軽減されると思います。